package com.ssy.lingxi.contract.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.contract.model.dto.OperateLogInputDto;
import com.ssy.lingxi.contract.model.dto.OperateLogOuterResponDto;
import com.ssy.lingxi.contract.model.vo.common.request.ContractOuterRecordPageVO;
import com.ssy.lingxi.contract.model.vo.common.response.ContractOuterRecordVO;

/**
 * 合同外部流转记录接口定义
 * @author 伍将
 * @date 2021/2/7
 * @version 2.0.0
 */
public interface IContractOuterRecordService {

    /**
     * 新增外部流转记录
     * @author 伍将
     * @date 2021/2/7
     * @param user: 新增外部流转记录
     * @param contractId: 合同id
     * @param status: 状态
     * @param statusName: 状态名称
     * @param operate: 操作
     * @param opinion: 意见
     * @return 操作结果
     **/
    Wrapper<Void> add(UserLoginCacheDTO user, Long contractId, Integer status, String statusName, String operate, String opinion);

    /**
     * 分页查询合同外部流转记录
     * @author 伍将
     * @date 2021/2/24
     * @param pageVO: 分页请求参数
     * @return 操作结果
     **/
    Wrapper<PageData<ContractOuterRecordVO>> pageList(ContractOuterRecordPageVO pageVO);

    /**
     * 分页查询合同外部-流转记录-公共方法
     * @param loginUser
     * @param pageVO
     * @return
     */
    PageData<OperateLogOuterResponDto> pageListCommon(UserLoginCacheDTO loginUser, OperateLogInputDto pageVO);
}
